#ifndef PET_H
#define PET_H
//Pet的属性
typedef struct{
	struct PetVTBL const * vptr;
    char *name;
}Pet;

typedef struct PetVTBL{
	void (*eat)(Pet  const * const me);
}PetVTBL;

//Pet的成员函数
void Pet_ctor(Pet * const me, char *name);					//Pet构造函数（Constructor）
void Pet_rename(Pet * const me, char *new_name);			//Pet数据操作函数
char *Pet_getName(Pet const * const me);							//Pet接口函数

//加上 static 关键字，该函数只在当前 .c 文件可见 (将该头文件include进去的 .c 文件)
static inline void Pet_eat(Pet * const me){
	(*me->vptr->eat)(me);
}
#endif	//PET_H
